home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Graphics / Multimedia / Movie3.0 / Source / Movie.nib / data.nib (.txt) < prev    next >
Encoding:
NeXT TypedStream Data  |  1995-07-31  |  16.7 KB  |  274 lines

  1. streamtyped
  2. IBObjectData
  3. Object
  4. CustomObject
  5. Application
  6. MenuTemplate
  7. *@*@ccc
  8. Movie
  9. Matrix
  10. Control
  11.     Responder
  12. @:@iiii
  13. MenuCell
  14. ButtonCell
  15. ActionCell
  16.     Helvetica
  17. submenuAction:
  18. NXImage
  19. NXmenuArrow
  20. Open...
  21. Load...
  22. Save current depth...
  23. Close
  24. ff@@#::s
  25.     Expand 2x
  26. Reduce 50%
  27. Restore
  28. Back 1 frame
  29. Backward
  30. Forward
  31. Forward 1 frame
  32. Windows
  33. Arrange in Front
  34. Miniaturize Window
  35. Close Window
  36. Print...
  37. Info Panel...
  38. Preferences...
  39. Help...
  40.     TextField
  41. [10@]
  42. TextFieldCell
  43. Version 3.0 of Jul 31 1995
  44. Courier
  45. (by Patrick J. Flynn (flynn@eecs.wsu.edu)
  46. Button
  47. appIcon
  48. LUse the code for whatever you want.
  49. Don't pretend that you wrote it, though.
  50. SModified for mpeg support by Andreas Windemuth 
  51. (windemut@cumbnd.bioc.columbia.edu)
  52. OWith code fragments from MPEGPlay2.3 by Brian Willoughby
  53. (BrianW@SoundS.WA.com)
  54. >With code from Xanim by Mark Podlipec
  55. (podlipec@wellfleet.com)
  56. TModified for xanim support by Andreas Windemuth 
  57. (windemut@cumbnd.bioc.columbia.edu)
  58. LWith code contributions from Christopher Lane 
  59. (lane@sumex-aim.stanford.edu)
  60. ScrollView
  61. ClipView
  62. ciifffcfffs
  63. [11977c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;\f1\fmodern Courier;\f2\fmodern Ohlfs;}
  64. \margl40
  65. \margr40
  66. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b\i0\ulnone\fs36\fc0\cf0 Movie 2.51.1: Even more improved TIFF sequence animator \
  67. \b0\fs24 \
  68. Modifications by Andreas Windemuth\
  69. Columbia University\
  70. 630 West 168th St. BB-221\
  71. New York, NY 10032\
  72. windemut@cumbnd.bioc.columbia.edu\
  73. Using some code from MPEGPlay2.3 by\
  74. Brian Willoughby        Software Design Engineer, BSEE NCSU\
  75. BrianW@SoundS.WA.com    Sound Consulting: Software Design and Development\
  76. NeXTmail welcome\
  77. Original code (mostly intact) by\
  78. Patrick J. Flynn, School of EE&CS, Washington State University,\
  79. Pullman, WA, USA 99164-2752.  Email: flynn@eecs.wsu.edu\
  80. Credit also belongs to anybody else who contributed to the code\
  81. without my knowledge.\
  82. New features:\
  83.     reads and plays mpeg encoded videos
  84. \b\fs36 \
  85. \b0\fs24     displays frames, frame size and frame number while loading\
  86.     memory saving play-from-disk mode (no speed control)\
  87.     reenabled tiff-sequence input\
  88. New user interace elements:\
  89. \i Open 
  90. \i0 has been replaced by
  91. \i  Load 
  92. \i0 and
  93. \i  Play, 
  94. \i0 where
  95. \i  Load 
  96. \i0 is just\
  97.     like the old
  98. \i  Open, 
  99. \i0 and
  100. \i  Play 
  101. \i0 plays the movie directly from disk,\
  102.     with minimum memory usage for arbitrarily large movies, but\
  103.     no control panel, limited speed and no smoothing.\
  104.     An additional switch on the control panel for displaying the\
  105.     frame number in the picture, without the overhead associated\
  106.     with slider update.\
  107. \b\fs36 Movie 2.51: An improved TIFF sequence animator\
  108. \b0\fs24 \
  109. by Patrick J. Flynn\
  110. Assistant Professor\
  111. School of Electrical Engineering and Computer Science\
  112. Washington State University\
  113. Pullman, WA 99164-2752\
  114. \f1 flynn@eecs.wsu.edu\
  115. \f0 \
  116. Additional code contributed by Christopher Lane (lane@sumex-aim.stanford.edu)\
  117. \b Changes 2.5 -> 2.51\
  118. \b0 0. Fixed bug in `Save' code tickled when user is overwriting an existing movie.\
  119. 1. Fixed bug in IB.proj making Preferences unusable.\
  120. 2. This Help text is now selectable so users can copy the tiff2anim script below.\
  121. \b Changes  2.0 -> 2.5:
  122. \b0 \
  123. 0. a few bug fixes (probably a few new bugs, too).\
  124. 1. Adjustable cache depth.  This is a big win on the NextDimension.  The default cache depth can be set via a Preferences panel.\
  125. 2. The user can now choose to have the movie frame number slider track the frames (
  126. \i a la
  127. \i0  Movie 1.0) or be disabled during animation (
  128. \i a la
  129. \i0  Movie 2.0).\
  130. 3. The movie can be saved using the currently-selected depth.  In other words, if you load\
  131. in a 24-bit RGB movie, you can save it as 2-bit grayscale by changing the depth and picking the Save Current Depth menu item.  You can't save a movie on top of the original.  If you want to replace an existing movie with the one to be saved, it will try to keep the old copy around by renaming it (
  132. \i e.g.
  133. \i0 , foo.anim becomes ~foo.anim).\
  134. 4. Movie no longer accepts multi-frame 
  135. \f1 .tiff
  136. \f0  files by default -- recompilation with an appropriate 
  137. \f1 #define
  138. \f0  will being them back.  I have already been flamed for stating that Movie 2.0 would be the last version which would accept this file format. However,  it is 
  139. \b terribly easy
  140. \b0  to convert a multi-frame 
  141. \f1 .tiff 
  142. \f0 into an 
  143. \f1 .anim
  144. \f0  directory.\
  145. Here is a C-shell script which will do that very thing:\
  146. \f1 #!/bin/csh -f\
  147. # Syntax: tiff2anim foo.tiff\
  148. # Note: creates foo.anim\
  149. set bn = `basename $i .tiff`\
  150. set nframes = `tiffutil -info $1 |grep Dir | wc -l | awk '\{print $1\}'`\
  151. if (-d $bn.anim) then\
  152.   echo moving existing directory $bn.anim to $bn.anim.old\
  153.   mv $bn.anim $bn.anim.old\
  154. endif\
  155. mkdir $bn.anim\
  156. set i = 1\
  157. while ($i <= $n)\
  158.   tiffutil -extract `expr $i - 1` $1 -out $bn.anim/$bn.$i.tiff\
  159.   @ i++\
  160. exit 0
  161. \f0 \
  162. I wouldn't be surprised if you could do the same thing in one line of perl, but I don't know perl.\
  163. \b Possible future enhancements:
  164. \b0 \
  165. 1. support some kind of scripting capability.  This could be as simple as a way to specify a per-frame delay, or as complicated as GRASP.  My ulterior motive for trashing the multi-frame\
  166. \f1 .tiff
  167. \f0  movie format was to support the addition of a script file to the 
  168. \f1 .anim
  169. \f0  directory.\
  170. 2. Support sound tracks.\
  171. I am also open to suggestions for additional enhancements.\
  172. \b\fs36 What's a movie file?\
  173. \b0\fs24 A movie file is an `
  174. \b .anim
  175. \b0 '  directory containing frames in individual TIFF files.\
  176. Example: a directory named 
  177. \b Cows.anim
  178. \b0  containing 
  179. \b0  files with the names 
  180. \b Cows.1.tiff
  181. \b0 , ..., 
  182. \b Cows.n.tiff
  183. \b0  is a valid input `file' for Movie.  When you create animations in Icon, they are written to disk in this format.\
  184. \b If Movie is placed in one of the Workspace's standard application directories, double-clicking an .anim directory should fire up Movie and cause it to open the animation in that directory.  It's possible that you might have to fiddle with Workspace's Tools inspector to set Movie as the primary application for .anim directories, but I didn't have to on my system.\
  185. \b0 \
  186. \b\fs36 Running the program\
  187. \b0\fs24 Movie doesn't put up any windows right away; it waits for you to open movies (using the `open' item under the Movie menu).  You can have multiple movies open and running at the same time.   Each open movie has two associated windows.  One window displays frames of the movie, and the other is a control panel.  The movie window can be resized; this causes all frames of the movie to be recached to reflect the new window size.  Some common resizing operations are available as buttons in the control panel and as menu items also.\
  188. \f2 \
  189. \f0\b\fs36 Controls\
  190. \b0\fs24 There are two sliders, eight pushbuttons, a checkbox, and three groups of radio buttons in the Control panel associated with a currently-loaded movie. Play with them!\
  191. The top slider allows you to choose the number of frames per second.  If the animation is running, mousing the slider will change the number of frames per second and continue the animation with the new timing information.  The actual speed is displayed below this slider (thanks to Christopher Lane for contributing the code for this).  The default is 1 fps when a movie is first loaded.  The limit on the slider is 200 fps, but unless your images are very small, you probably won't achieve that speed.  One data point: on my 20MB NeXTDimension screen, with no swapping underway, I can get better than 35 256x256 8-bit gray-scale frames (cached as 8-bit grayscale) per second  running flat-out.\
  192. \b Drawing speed depends on the available hardware, the image depth, the cache depth, the image size, and the system load. 
  193. \b0 \
  194. The next slider gives you control over the currently-displayed frame.  When the animation is running, this slider is disabled.\
  195. The five buttons in the middle allow you to start and stop the free-running display of frames, as well as single-step through them.  I am not an artist, so I stole the icons from the SoundEditor .nib file in /NextDeveloper/Examples.  Note that you can go both forward and backward through the set of frames.  There are menu (and command-key) equivalents for these buttons (see the View menu).\
  196. The `Mode' radio buttons control what happens at the end of the frame set.\
  197. `Loop' means to loop through the frames cotinuously (
  198. \i i.e.
  199. \i0 , frame N-1 is followed by frame 0).  `Bounce' mode produces a direction reversal at frames 0 and N-1.\
  200. `Once through' makes the animation stop after the end (frame 0 or frame N-1 depending on the direction) is reached.\
  201. The `Speed' radio buttons offer you a choice between the fastest possible animation accompanied by very coarse, jumpy, and useless `actual fps' estimates, and well-synchronized animation with accurate fps estimates and a lower maximum frame rate.  If you're after raw speed and don't particularly care if the frames are being displayed as smoothly as possible, use the default Fast&sloppy setting.  If you can live with a lower maximum speed but require more synchronization, use Slow&smooth.\
  202. The three buttons at the bottom yield coarse control over the image size.  `Double size' doubles the window and image size (duh), `Halve size' does the inverse, and `Restore' restores the size to match the dimensions of the input image.  Note: the Movie window  is also resizeable using the resize bar at the bottom.  When the image is resized (using the bar, the buttons, or their equivalents in the View menu), the action will pause as the frames are recached.  There are menu (and command-key) equivalents for these three operations also.\
  203. Two new additions to Movie for version 2.1 are the `Depth' radio button matrix, and the `animate frame# slider' checkbox.  The user now can control the number of bits per pixel used when the frames are drawn.  The choices are: Default (the default for the system, which is the depth of the deepest available frame buffer), 2-bit grayscale, 8-bit grayscale, 12-bit color, and 24-bit color.   The depth of the cache determines how many frames will fit in memory, which in turn determines how long a movie you can run smoothly.  Movie is not smooth when cached frames have to be retrieved from disk.  If you can live with grayscale instead of color, you can fit a larger movie in memory with a shallower cache.\
  204. While I encourage users to play with this control, here are some words of wisdom [sic].\
  205. 1. If you ONLY have a 2-bit-deep display (non-ND cube or MonoSlab), use the `Default' or `2-bit gray' setting.  You are perfectly free to bump up the cache depth, but you won't see any difference (i.e., using a 24-bit cache on a 2-bit display will 
  206. \b not
  207. \b0  magically upgrade your screen to color).\
  208. 2. If you have a 12-bit-deep display (ColorSlab), use 12-bit color if your movie is in color.  If your movie is not in color, use 8-bit grayscale.  If your slab pages continuously\
  209. while the animation is running and you can live with the degradation, use `2-bit gray'.\
  210. 3. If you have a NextDimension, use the largest depth that lets you run smoothly.\
  211. Regardless of the depth, you will be able to send the movie out to a VCR or monitor.\
  212. You can set the default cache depth for newly-loaded movies using the buttons in the\
  213. Preferences panel.  The associated defaults database entry is "Movie DefaultDepth", and valid\
  214. values are "0" (use the default for the display), "2" (2-bit gray), "8" (8-bit gray), "12" (12-bit color), and "24" (24-bit color).\
  215. \b Note: there will be a delay every time you change the Depth buttons on the control panel as the frames are recached.  For long and/or deep movies, this delay can be several seconds.\
  216. \b0 \
  217. As mentioned above, you can save the movie in its currently-displayed depth.\
  218. The `animate frame# slider' checkbox controls whether the frame number slider (and the frame number text item above it) track the movie as it is running.  It is disabled by default.  You can get 
  219. \b much higher
  220. \b0  top speeds when the slider updates are disabled.\
  221. The Edit menu contains a Copy item which copies the currently-displayed frame to the Pasteboard.  If the animation is running when Copy is invoked, the animation stops, the copy is performed, and the animation starts again.\
  222. The Print... menu item prints the current frame, stopping animation if necessary (restarting when done).\
  223. Movie windows can be miniaturized by clicking on the miniaturize button on the left side of the title bar.  If the movie is running when miniaturization is requested, the animation stops.  To eliminate screen clutter, miniaturization causes the control panel to  be hidden also.  Deminiaturization (double-clicking on the miniwindow) brings both the movie and its control panel back on-screen.\
  224.  I hope you enjoy the program.  Suggestions for improvements can be emailed to the address at the top of this help text.\
  225. Pat Flynn
  226. NXCursor
  227. NXibeam
  228. Scroller
  229. _doScroller:
  230. @@@ffs2
  231. WindowTemplate
  232. iiii***@s@
  233. Panel$
  234. Controller
  235.     Field3111
  236. Field
  237. Open...1
  238. File's Owner
  239. ScrollingText
  240. Field312
  241. VersionNumber
  242. Field2
  243. Button1
  244. ControllerInstance
  245. Field1
  246. MainMenu
  247. Field31
  248. MenuItem
  249. Field311
  250. Field3
  251. [23@]
  252. IBControlConnector
  253. IBConnector
  254. hide:
  255. terminate:
  256. makeKeyAndOrderFront:
  257. copy:
  258. open:
  259.     expand2x:
  260. reduce50pct:
  261. restore:
  262. revStep:
  263. stop:
  264. fwdStep:
  265. print:
  266. IBOutletConnector
  267. delegate
  268. performMiniaturize:
  269. performClose:
  270. arrangeInFront:
  271. prefs:
  272. save:
  273. load:
  274.